﻿using Bilibili.Common;
using Bilibili.Model.Common;
using Bilibili.Model.Video;
using Bilibili.WebClient.Api;
using System.Threading.Tasks;

namespace Avalonia.BiliBili.Libs.Window
{
    public abstract class PlayerWindowBase : WindowBase
    {
        public PlayerClient Client { get; }
        public LiveRoomClient LiveClient { get; }
        public abstract event CallbackDynamicObject CallbackDynamic;
        public PlayerWindowBase()
        {
            Client = new PlayerClient();
            LiveClient = new LiveRoomClient();
        }
        protected PlayMode PlayMode { get; private set; }
        public abstract Task Play(int idx);
        public abstract void Play(RelatesModel relates);
        public void InitView(PlayMode playMode) => PlayMode = playMode;
    }
}